草庐IT

c++ - RAII 和 C++ STL

全部标签

【C++进阶(五)】STL大法--list模拟实现以及list和vector的对比

💓博主CSDN主页:杭电码农-NEO💓 ⏩专栏分类:C++从入门到精通⏪ 🚚代码仓库:NEO的学习日记🚚 🌹关注我🫵带你学习C++ 🔝🔝list模拟实现1.前言2.list类的大致框架与结构3.List类的构造,析构,拷贝构造4.list的迭代器的实现4.1list迭代器的若干函数解析4.2list迭代器的解引用和箭头操作4.3迭代器类映射到list类5.const迭代器实现深度剖析5.1const迭代器实现详解5.2const迭代器和list类的复用5.3const迭代器使用实例6.list和vector的对比7.总结以及代码分享1.前言本篇文章立足于上一篇文章:list深度剖析(上)请先阅

【C++精华铺】10.STL string模拟实现

1.序言        STL(标准模板库)是一个C++标准库,其中包括一些通用的算法、容器和函数对象。STL的容器是C++STL库的重要组成部分,它们提供了一种方便的方式来管理同类型的对象。其中,STLstring是一种常用的字符串类型。        STLstring是一个类,它封装了字符串的操作,并提供了一组成员函数。STLstring的实现使用了动态的内存分配技术,这意味着字符串的大小可以随时改变。STLstring还提供了一些高效的成员函数,例如substr、find、replace等,这些函数可以对字符串进行快速的操作。        STLstring的实现主要基于字符数组。字

第一百二十二天学习记录:C++提高:STL-vector容器(上)(黑马教学视频)

vector基本概念功能:vector数据结构和数组非常相似,也称为单端数组vector与普通数组区别:不同之处在于数组是静态空间,而vector可以动态扩展动态扩展:并不是在原空间之后续接新的空间,而是找更大的内存空间,然后将原数据拷贝新空间,释放原空间vector容器的迭代器是支持随机访问的迭代器vector构造函数功能描述:创建vector容器函数原型:vectorv; //采用模板实现类实现,默认构造函数vector(v.begin(),v,end()); //将v[begin(),end())区间中的元素拷贝给本身vector(n,elem);//构造函数将n个elem拷

【c++】:STL模板中string的使用

  文章目录STL简介一.认识string二.string中基本功能的使用总结 STL简介STL(standardtemplatelibaray-标准模板库):是C++标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗数据结构与算法的软件框架。STL的版本原始版本AlexanderStepanov、MengLee在惠普实验室完成的原始版本,本着开源精神,他们声明允许任何人任意运用、拷贝、修改、传播、商业使用这些代码,无需付费。唯一的条件就是也需要向原始版本一样做开源使用。HP版本--所有STL实现版本的始祖。P.J.版本由P.J.Plauger开发,继承自HP版本,被Windows

C++ STL重点、难点复习总结

文章目录前言一.STL的本质二.容器(重点中重点):三.迭代器(重点)四.算法1.sort2.适配器五.仿函数六.空间配置器1.为什么需要空间配置器六.内存池1.SGI-STL中二级空间配置器设计2.SGI-STL二级空间配置器之空间申请1.前期准备2.申请空间3.填充内存块七.扩展前言【C++】学习已经接近尾声了,这篇文章里都是面试复习的知识点,在排版界面方面可能会有点乱,博主没有把精力放在这些上,主要是一些干货,帮助那些需要面试的小伙伴以及回顾一些重点知识。一.STL的本质6大组件:容器、算法、迭代器、仿函数(函数对象)、适配器、空间配置器它们之间的关系是:二.容器(重点中重点):stri

【C++】智能指针(RAII)详解

  我们在上篇文章中(异常处理详解)提到了RAII。那么本篇文章会对此进行详解。重点是智能指针的详解。其中会讲解到RAII思想、auto_ptr、unique_ptr、shared_ptr、weak_ptr、循环引用问题。希望本篇文章会对你有所帮助。文章目录一、为什么需要智能指针二、智能指针的使用及原理2、1RAII解释2、2什么是智能指针2、3auto_ptr2、3、1auto_ptr的使用2、3、2auto_ptr的模拟实现2、4unique_ptr2、5shared_ptr三、循环引用问题及解决3、1weak_ptr四、内存泄漏问题4、1什么是内存泄漏4、2内存泄漏分类4、3如何规避内存

【C++进阶(四)】STL大法--list深度剖析&list迭代器问题探讨

💓博主CSDN主页:杭电码农-NEO💓 ⏩专栏分类:C++从入门到精通⏪ 🚚代码仓库:NEO的学习日记🚚 🌹关注我🫵带你学习C++ 🔝🔝链表list1.前言2.list的使用2.1list的构造函数2.2list迭代器的使用2.3list容量相关操作2.4list的增删查改3.list迭代器失效问题探讨4.算法库函数和list的关系4.1算法库函数的迭代器类型4.2list不能使用的算法库函数5.总结以及拓展1.前言本质重点:本章重点讲解list的接口函数的熟悉并且讲解list迭代器失效的特性最后讲解迭代器的功能分类以及算法库函数中谁能用谁不能用STL标准库中的list是一个带头双向循环链表和

【C++_STL】优先级队列&反向迭代器详解

目录一,栈_刷题必备二,stack实现1.什么是容器适配器2.STL标准库中stack和queue的底层结构 了解补充:容器——deque 1.deque的缺陷2.为什么选择deque作为stack和queue的底层默认容器三,queue实现1.普通queue 2,优先级队列(有难度).功能.模拟实现1).利用迭代器_构造2).仿函数sort函数中的仿函数使用理解结语一,栈_刷题必备常见接口: stack()   造空的栈empty()  检测stack是否为空size()    返回stack中元素的个数top()     返回栈顶元素的引用push()   将元素val压入stack中po

[C++] STL_list常用接口的模拟实现

文章目录1、list的介绍与使用1.1list的介绍1.2list的使用2、list迭代器3、list的构造4、list常用接口的实现4.1listcapacity4.2插入删除、交换、清理4.2.1insert任意位置插入4.2.2push_front头插4.2.3push_back尾插4.2.4erase任意位置删除4.2.5pop_front头删4.2.6pop_back尾删4.2.7swap()4.2.8clear5、list迭代器失效问题6、list与vector对比1、list的介绍与使用1.1list的介绍list文档介绍list是可以在常数范围内在任意位置进行插入和删除的序列式

【C++】STL---vector

STL---vector一、vector的介绍二、vector的模拟实现1.容量相关的接口(1)size(2)capacity(3)reserve(4)resize(5)empty2.[]重载3.迭代器4.修改数据相关的接口(1)push_back(2)pop_back(3)insert(4)erase(5)swap(6)clear5.构造函数6.拷贝构造函数7.赋值运算符重载8.析构函数一、vector的介绍vector是表示可变大小数组的序列容器。就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不像数组,